#pragma once
#include <cstddef>
#include<iostream>
#include <string>
#include <vector>

class Util
{
public:
    //这里要做输出型参数
    static void cutString(std::string str,const std::string& sep,std::vector<std::string>* out)
    {
        std::size_t start = 0;
        while(true)
        {
            auto pos = str.find(sep,start);
            if(pos == std::string::npos){
                break;
            }
            std::string sub = str.substr(start,pos - start);
            out->push_back(sub);
            start += sep.size();
            start += str.size();
        }
        if(start < str.size()){
            out->push_back(str.substr(start));
        }
    }
    // static void cunString2(std::string str,const std::string& sep,std::vector<std::string>* out)
    // {
    //     std::size_t start = 0;
    //     while(start < str.size()){
    //         auto pos = str.find(sep,start);
    //         if(pos == std::string::npos){
    //             break;
    //         }
    //         std::string sub = str.substr(start,pos - start);
    //         out->push_back(sub);
    //         sub += sep.size();
    //         sub += str.size();
    //     }
    //     if(start < str.size()){
    //         out->push_back(str.substr(start));
    //     }
    // }
    // static void cutString(std::string str,const std::string& sep, std::vector<std::string>* out)
    // {
    //     std::size_t start = 0;
    //     while(start < str.size())
    //     {
    //         //从start处开始寻找sep
    //         auto pos = str.find(sep,start);
    //         if(pos == std::string::npos){
    //             break;
    //         }
    //         std::string sub = str.substr(start,pos - start);
    //         out->push_back(sub);
    //         //start要越过第一个资源处开始寻找下一个资源
    //         start += sub.size();
    //         start += sep.size();
    //     }
    //     //因为上面代码处是有可能意外退出的，所以这里需要进行补充
    //     if(start < str.size()){
    //         out->push_back(str.substr(start));
    //     }
    // }
};
